import { createSSRApp } from "vue";
import App from "./App.vue";

// 引入vant
// #ifdef H5
import Vant from 'vant'
import 'vant/lib/index.css'
// #endif

// 导入 pinia 实例
import pinia from "./stores";

// 引入懒加载插件
// #ifdef H5
import { lazyPlugin } from '@/directives'
// #endif


// 引入 socket.io
// import VueSocketIO from "vue-socket.io"
// import { registerSockets, destroySockets } from "@/utils/sockets"

/* SocketIOClient.Socket, */
// const socket = new VueSocketIO({
//   debug: true, // debug调试，生产建议关闭
//   connection: "http://localhost:3120",
// });
 
export function createApp() {
  const app = createSSRApp(App);

  let fileDomain = 'https://minio-fs-api.itrident.cn/'
  if (import.meta.env.DEV) {
    fileDomain = 'http://127.0.0.1:9000/'
  }

  // 配置全局变量 页面中使用 inject 接收
  app.provide('global', {
    FILE_DOMAIN: fileDomain,
    UPLOAD_FILE_API: 'https://file.itrident.cn/api/v1/image/minioSingleUploadImage',
    PID: 0,
  })


  // 使用pinia
  app.use(pinia)

  // 注册懒加载插件
  // #ifdef H5
  app.use(lazyPlugin)
  // #endif

  // 加载 vant 组件
  // #ifdef H5
  app.use(Vant)
  // #endif

  // // 便于在任意位置获取到 socket 对象
  // app.config.globalProperties.$socket = socket;
  // // 监听事件
  // app.config.globalProperties.$addSockets = registerSockets;
  // // 移除事件
  // app.config.globalProperties.$removeSockets = destroySockets;

  return {
    app,
  };
}
